package TCP;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;

/**
 * Day03_OpenStream 类用于演示如何从网络打开一个流并读取其内容。
 */
public class Day03_OpenStream {
    public static void main(String[] args) {
        try {
            // 创建URL对象，指定要连接的地址
            URL url = new URL("https://www.baidu.com");
            // 打开URL连接，获取输入流
            InputStream inputStream = url.openStream();
            // 定义一个字节数组用于存储从输入流中读取的数据
            byte[] array = new byte[2048];
            int a;
            // 循环读取输入流中的数据直到没有更多的数据
            while ((a = inputStream.read(array)) != -1) {
                // 将读取的字节数组转换为字符串并打印
                System.out.println(new String(array, "utf-8"));
            }

            // 将字节流转换为字符流，使用缓冲区进行读取
            InputStreamReader reader = new InputStreamReader(inputStream,"utf-8");
            BufferedReader reader1 = new BufferedReader(reader);
            String string;
            // 读取并打印每一行文本
            while ((string = reader1.readLine()) != null) {
                System.out.println(string);
            }

        } catch (IOException e) {
            // 捕获并处理IOException，将其转换为运行时异常抛出
            throw new RuntimeException(e);
        }
    }
}
